package ar.edu.caece.compiler.grammar.attributes;

public class Attribute {
	
	public static final String TABLA_SIMBOLOS_HEREDADA = "tsh";
	public static final String LISTA_PARAMETROS_HEREDADA = "lph";
	public static final String LISTA_PARAMETROS_SINTETIZADA = "lps";
	public static final String TABLA_SIMBOLOS_SINTETIZADA = "tss";
	public static final String LISTA_VARIABLES_HEREDADA = "lvh";
	public static final String LISTA_VARIABLES_SINTETIZADA = "lvs";
	public static final String ARBOL_SINTETIZADO = "as";
	public static final String ARBOL_HEREDADO = "ah";
	public static final String OPERACION = "operacion";
	public static final String NOMBRE_FUNCION = "nombreFuncion";
	public static final String LEXEMA = "lexema";
	
	public enum Type {
		NATURAL,
		ENTERO,NINGUNO;

	}
	
	public enum Operacion {
		DIVISION("divN","divE"),MULTIPLICACION("multN","multE"),SUMA("sumaN","sumaE"),RESTA("restaN","restaE");
		
		private String functionNameNatural;
		private String functionNameEntero;
		private Operacion(String functionNameNatural, String functionNameEntero) {
			this.functionNameNatural = functionNameNatural;
			this.functionNameEntero = functionNameEntero;
		}
		public String getFunctionNameNatural() {
			return functionNameNatural;
		}
		public void setFunctionNameNatural(String functionNameNatural) {
			this.functionNameNatural = functionNameNatural;
		}
		public String getFunctionNameEntero() {
			return functionNameEntero;
		}
		public void setFunctionNameEntero(String functionNameEntero) {
			this.functionNameEntero = functionNameEntero;
		}
	}
	
	public enum OperadorRelacional {
		
		MENOR("jb"), IGUAL("jz"), DISTINTO("jnz"), MAYOR("ja");
		
		private OperadorRelacional(String code) {
			this.code = code;
		}

		private String code;

		public void setCode(String code) {
			this.code = code;
		}

		public String getCode() {
			return code;
		}
		

	}

	public enum Relacion {
		AND,OR;
	}
	
	public enum FuncionesParidad {
		PAR,IMPAR
	}
}
